/***********************************************************************
    filename:   DaterCalendar.h
    created:    10/4/2012
    author:     4Ys

    purpose:    Defines base class for Calendar objects
*************************************************************************/
#ifndef _DaterCalendarData_h_
#define _DaterCalendarData_h_

#include "DaterCalendarYear.h"

#include <map>

namespace Dater
{
	/*!
	\brief
		An entity class contains 21 year calendars front and back.
	*/
	class CalendarData
	{
	public:
		/*!
		\brief
			Constructor for CalendarData class
		*/
		CalendarData();

		/*!
		\brief
			Destructor for Calendar class
		*/
		~CalendarData();

		/*!
		\brief
			Get the CalendarYear of the given year

		\param year
			The year of the Calendar.

		\return
			Pointer to the CalendarYear of the given year
		*/
		CalendarYear* getYearCalendar(int year);
		
		/*!
		\brief
			a function to add an event.
		
		\param Event
			a pointer to the new event.
		*/
		void addEvent(Event*);
		
		
		/*!
		\brief
			a function to delete an event.
		
		\param Event
			a pointer to the delete event.
		*/
		void deleteEvent(Event*);
		
	private:
		//! The list of three year calendars attach to calendar
		std::map<int, CalendarYear*> _years;
	};

}

#endif